package com.jhsw.roadsun.module.business.controller.app.expressage.vo;

import com.jhsw.roadsun.module.business.controller.app.expressage.vo.goods.AppExpressageGoodsRespVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

@Schema(description = "APP - 寄件信息 Response VO")
@Data
public class AppExpressageRespVO {

    @Schema(description = "寄件ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "9001")
    private Long id;

    @Schema(description = "收件国家", requiredMode = Schema.RequiredMode.REQUIRED)
    private String country;

    @Schema(description = "运输方式", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    private String shippingType;

    @Schema(description = "是否报关（0否 1是）")
    private Boolean customsFiling;

    @Schema(description = "寄件人姓名", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
    private String sendName;

    @Schema(description = "寄件人手机号", requiredMode = Schema.RequiredMode.REQUIRED)
    private String sendMobile;

    @Schema(description = "寄件人详细地址", requiredMode = Schema.RequiredMode.REQUIRED)
    private String sendAddress;

    @Schema(description = "寄件人公司名称", requiredMode = Schema.RequiredMode.REQUIRED)
    private String sendCompany;

    @Schema(description = "寄件人所属部门")
    private String sendDept;

    @Schema(description = "收件人姓名", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
    private String recipientsName;

    @Schema(description = "收件人手机号", requiredMode = Schema.RequiredMode.REQUIRED)
    private String recipientsMobile;

    @Schema(description = "收件人详细地址", requiredMode = Schema.RequiredMode.REQUIRED)
    private String recipientsAddress;

    @Schema(description = "收件人公司名称", requiredMode = Schema.RequiredMode.REQUIRED)
    private String recipientsCompany;

    @Schema(description = "收件人所属部门")
    private String recipientsDept;

    @Schema(description = "付款方式（0寄付 1到付 2第三方结款）（字典：business_expressage_pay_method）", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer payMethod;

    @Schema(description = "客户账号", example = "6085")
    private String customerAccount;

    @Schema(description = "发票号")
    private String invoiceNum;

    @Schema(description = "快递单号")
    private String expressageOrder;

    @Schema(description = "审核状态（0未处理 1已出单 2已取消）（字典：business_expressage_audit_status）", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    private Integer auditStatus;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime createTime;

    @Schema(description = "货品列表")
    private List<AppExpressageGoodsRespVO> goods;
}
